home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / knowhow4 / getkey.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-10  |  4.5 KB  |  144 lines

  1. #include <conio.h>
  2. #include "event.h"
  3.  
  4. int get_key()
  5.     {
  6.     int key = EVENT_NO;
  7.     if(kbhit())                                  // char available
  8.     {
  9.     key = getch();
  10.  
  11.  
  12.      if (key<32)
  13.         {
  14.         switch(key)
  15.         {
  16.         case 13: key = EVENT_RETURN; break;
  17.         case 25: key = EVENT_CTRL_Y; break;
  18.         case 27: key = EVENT_ESC;    break;
  19.         case  9: key = EVENT_TAB;    break;
  20.         case  8: key = EVENT_BKSP;   break;
  21.         case  7: key = EVENT_BELL;   break;
  22.  
  23.  
  24.         case 0:
  25.             key = getch();
  26.             switch(key)
  27.             {
  28.             case 75: key = EVENT_LEFT; break;
  29.             case 77: key = EVENT_RIGHT; break;
  30.             case 71: key = EVENT_HOME; break;
  31.             case 72: key = EVENT_UP;break;
  32.             case 73: key = EVENT_PG_UP; break;
  33.             case 76: key = EVENT_FIVE; break;  // center of num. kbd
  34.             case 79: key = EVENT_END; break;
  35.             case 80: key = EVENT_DN; break;
  36.             case 81: key = EVENT_PG_DN; break;
  37.  
  38.             case 119: key = EVENT_CTRL_HOME; break;
  39.             case 132: key = EVENT_CTRL_PG_UP; break;
  40.             case 117: key = EVENT_CTRL_END; break;
  41.             case 118: key = EVENT_CTRL_PG_DN; break;
  42.  
  43.             case 59: key = EVENT_F1; break;
  44.             case 60: key = EVENT_F2; break;
  45.             case 61: key = EVENT_F3; break;
  46.             case 62: key = EVENT_F4; break;
  47.             case 63: key = EVENT_F5; break;
  48.             case 64: key = EVENT_F6; break;
  49.             case 65: key = EVENT_F7; break;
  50.             case 66: key = EVENT_F8; break;
  51.             case 67: key = EVENT_F9; break;
  52.             case 68: key = EVENT_F10; break;
  53.  
  54.             case 84: key = EVENT_SHIFT_F1; break;
  55.             case 85: key = EVENT_SHIFT_F2; break;
  56.             case 86: key = EVENT_SHIFT_F3; break;
  57.             case 87: key = EVENT_SHIFT_F4; break;
  58.             case 88: key = EVENT_SHIFT_F5; break;
  59.             case 89: key = EVENT_SHIFT_F6; break;
  60.             case 90: key = EVENT_SHIFT_F7; break;
  61.             case 91: key = EVENT_SHIFT_F8; break;
  62.             case 92: key = EVENT_SHIFT_F9; break;
  63.             case 93: key = EVENT_SHIFT_F10; break;
  64.  
  65.             case 94: key = EVENT_CTRL_F1; break;
  66.             case 95: key = EVENT_CTRL_F2; break;
  67.             case 96: key = EVENT_CTRL_F3; break;
  68.             case 97: key = EVENT_CTRL_F4; break;
  69.             case 98: key = EVENT_CTRL_F5; break;
  70.             case 99: key = EVENT_CTRL_F6; break;
  71.             case 100: key = EVENT_CTRL_F7; break;
  72.             case 101: key = EVENT_CTRL_F8; break;
  73.             case 102: key = EVENT_CTRL_F9; break;
  74.             case 103: key = EVENT_CTRL_F10; break;
  75.  
  76.             case 104: key = EVENT_ALT_F1; break;
  77.             case 105: key = EVENT_ALT_F2; break;
  78.             case 106: key = EVENT_ALT_F3; break;
  79.             case 107: key = EVENT_ALT_F4; break;
  80.             case 108: key = EVENT_ALT_F5; break;
  81.             case 109: key = EVENT_ALT_F6; break;
  82.             case 110: key = EVENT_ALT_F7; break;
  83.             case 111: key = EVENT_ALT_F8; break;
  84.             case 112: key = EVENT_ALT_F9; break;
  85.             case 113: key = EVENT_ALT_F10; break;
  86.  
  87.             case 30: key = EVENT_ALT_A; break;
  88.             case 48: key = EVENT_ALT_B; break;
  89.             case 46: key = EVENT_ALT_C; break;
  90.             case 32: key = EVENT_ALT_D; break;
  91.             case 18: key = EVENT_ALT_E; break;
  92.             case 33: key = EVENT_ALT_F; break;
  93.             case 34: key = EVENT_ALT_G; break;
  94.             case 35: key = EVENT_ALT_H; break;
  95.             case 23: key = EVENT_ALT_I; break;
  96.             case 36: key = EVENT_ALT_J; break;
  97.             case 37: key = EVENT_ALT_K; break;
  98.             case 38: key = EVENT_ALT_L; break;
  99.             case 50: key = EVENT_ALT_M; break;
  100.  
  101.             case 49: key = EVENT_ALT_N; break;
  102.             case 24: key = EVENT_ALT_O; break;
  103.             case 25: key = EVENT_ALT_P; break;
  104.             case 16: key = EVENT_ALT_Q; break;
  105.             case 19: key = EVENT_ALT_R; break;
  106.             case 31: key = EVENT_ALT_S; break;
  107.             case 20: key = EVENT_ALT_T; break;
  108.             case 22: key = EVENT_ALT_U; break;
  109.             case 47: key = EVENT_ALT_V; break;
  110.             case 17: key = EVENT_ALT_W; break;
  111.             case 45: key = EVENT_ALT_X; break;
  112.             case 21: key = EVENT_ALT_Y; break;
  113.             case 44: key = EVENT_ALT_Z; break;
  114.  
  115.             case 120: key = EVENT_ALT_1; break;
  116.             case 121: key = EVENT_ALT_2; break;
  117.             case 122: key = EVENT_ALT_3; break;
  118.             case 123: key = EVENT_ALT_4; break;
  119.             case 124: key = EVENT_ALT_5; break;
  120.             case 125: key = EVENT_ALT_6; break;
  121.             case 126: key = EVENT_ALT_7; break;
  122.             case 127: key = EVENT_ALT_8; break;
  123.             case 128: key = EVENT_ALT_9; break;
  124.             case 129: key = EVENT_ALT_0; break;
  125.             case 130: key = EVENT_ALT_MINUS; break;
  126.             case 131: key = EVENT_ALT_EQUAL; break;
  127.             case 165: key = EVENT_ALT_TAB; break;
  128.  
  129.             case 82: key = EVENT_INS; break;
  130.             case 83: key = EVENT_DEL; break;
  131.             case 15: key = EVENT_SHIFT_TAB; break;
  132.             case 114: key = EVENT_CTRL_PRT_SCR; break;
  133.             case 0: key = EVENT_CTRL_BREAK; break;
  134.  
  135.             default: key = EVENT_NO; break;
  136.             }
  137.             break;
  138.         default: key = EVENT_NO; break;
  139.         }
  140.         }
  141.     }
  142.     return  key;
  143.     }
  144.